﻿using System;
using System.ComponentModel;
using System.Runtime.Serialization;

namespace Models
{
    [Serializable]
    public partial class PtCameraInfo : INotifyPropertyChanging, INotifyPropertyChanged
    {

        private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(System.String.Empty);

        private string _ID;

        private string _CAMERA_NO;

        private string _GBNO;

        private string _CAMERA_NAME;

        private System.Nullable<decimal> _ORG_ID;

        private string _LONGITUDE;

        private string _LATITUDE;

        private string _CAMERA_DIRECTION;

        private System.Nullable<decimal> _CAMERA_TYPE;

        private string _CAMERA_STATE;

        private System.Nullable<decimal> _IS_HAVE_CONSOLE;

        private string _SHORT_MSG;

        private string _IS_WIFI;

        private int _BuildPeriod;

        private int _KeyUnit;

        private string _Street;

        private int _CAMERA_FUN_TYPE;

        private int _IMPORT_WATCH;

        private string _ANALYSIS_NO;

        private string _Camera_Ip;

        private string _PLATFORM_PRODUCT_ID;

        private int? _RECODE_SAVE_TYPE;

        private string _CAMERA_BELONGS_ID;

        private string _CAMERA_BELONGS_PK;

        private string _POSITION_TYPE;

        private DateTime _MODIFY_TIME;

        private int? _IS_DEL;

        private string _Monitor_Type;

        #region Extensibility Method Definitions

        partial void OnCreated();

        #endregion

        public PtCameraInfo(string strPlatformName)
        {
            OnCreated();
        }

        public PtCameraInfo()
        {
            OnCreated();
        }

        /// <summary>
        /// There are no comments for ID in the schema.
        /// </summary>
        [DataMember(Order = 1)]
        public virtual string ID
        {
            get
            {
                return this._ID;
            }
            set
            {
                if (this._ID != value)
                {
                    this.SendPropertyChanging();
                    this._ID = value;
                    this.SendPropertyChanged("ID");
                }
            }
        }

        /// <summary>
        /// There are no comments for CAMERA_NO in the schema.
        /// </summary>
        [DataMember(Order = 2)]
        public virtual string CAMERA_NO
        {
            get
            {
                return this._CAMERA_NO;
            }
            set
            {
                if (this._CAMERA_NO != value)
                {
                    this.SendPropertyChanging();
                    this._CAMERA_NO = value;
                    this.SendPropertyChanged("CAMERA_NO");
                }
            }
        }

        /// <summary>
        /// There are no comments for CAMERA_NAME in the schema.
        /// </summary>
        [DataMember(Order = 3)]
        public virtual string CAMERA_NAME
        {
            get
            {
                return this._CAMERA_NAME;
            }
            set
            {
                if (this._CAMERA_NAME != value)
                {
                    this.SendPropertyChanging();
                    this._CAMERA_NAME = value;
                    this.SendPropertyChanged("CAMERA_NAME");
                }
            }
        }

        /// <summary>
        /// There are no comments for ORG_ID in the schema.
        /// </summary>
        [DataMember(Order = 4)]
        public virtual System.Nullable<decimal> ORG_ID
        {
            get
            {
                return this._ORG_ID;
            }
            set
            {
                if (this._ORG_ID != value)
                {
                    this.SendPropertyChanging();
                    this._ORG_ID = value;
                    this.SendPropertyChanged("ORG_ID");
                }
            }
        }

        /// <summary>
        /// There are no comments for LONGITUDE in the schema.
        /// </summary>
        [DataMember(Order = 5)]
        public virtual string LONGITUDE
        {
            get
            {
                return this._LONGITUDE;
            }
            set
            {
                if (this._LONGITUDE != value)
                {
                    this.SendPropertyChanging();
                    this._LONGITUDE = value;
                    this.SendPropertyChanged("LONGITUDE");
                }
            }
        }

        /// <summary>
        /// There are no comments for LATITUDE in the schema.
        /// </summary>
        [DataMember(Order = 6)]
        public virtual string LATITUDE
        {
            get
            {
                return this._LATITUDE;
            }
            set
            {
                if (this._LATITUDE != value)
                {
                    this.SendPropertyChanging();
                    this._LATITUDE = value;
                    this.SendPropertyChanged("LATITUDE");
                }
            }
        }

        /// <summary>
        /// There are no comments for CAMERA_DIRECTION in the schema.
        /// </summary>
        [DataMember(Order = 7)]
        public virtual string CAMERA_DIRECTION
        {
            get
            {
                return this._CAMERA_DIRECTION;
            }
            set
            {
                if (this._CAMERA_DIRECTION != value)
                {
                    this.SendPropertyChanging();
                    this._CAMERA_DIRECTION = value;
                    this.SendPropertyChanged("CAMERA_DIRECTION");
                }
            }
        }

        /// <summary>
        /// There are no comments for CAMERA_TYPE in the schema.
        /// </summary>
        [DataMember(Order = 8)]
        public virtual System.Nullable<decimal> CAMERA_TYPE
        {
            get
            {
                return this._CAMERA_TYPE;
            }
            set
            {
                if (this._CAMERA_TYPE != value)
                {
                    this.SendPropertyChanging();
                    this._CAMERA_TYPE = value;
                    this.SendPropertyChanged("CAMERA_TYPE");
                }
            }
        }

        /// <summary>
        /// There are no comments for CAMERA_STATE in the schema.
        /// </summary>
        [DataMember(Order = 9)]
        public virtual string CAMERA_STATE
        {
            get
            {
                return this._CAMERA_STATE;
            }
            set
            {
                if (this._CAMERA_STATE != value)
                {
                    this.SendPropertyChanging();
                    this._CAMERA_STATE = value;
                    this.SendPropertyChanged("CAMERA_STATE");
                    //this.SendPropertyChanged(this);
                }
            }
        }

        /// <summary>
        /// There are no comments for IS_HAVE_CONSOLE in the schema.
        /// </summary>
        [DataMember(Order = 10)]
        public virtual System.Nullable<decimal> IS_HAVE_CONSOLE
        {
            get
            {
                return this._IS_HAVE_CONSOLE;
            }
            set
            {
                if (this._IS_HAVE_CONSOLE != value)
                {
                    this.SendPropertyChanging();
                    this._IS_HAVE_CONSOLE = value;
                    this.SendPropertyChanged("IS_HAVE_CONSOLE");
                }
            }
        }

        [DataMember(Order = 11)]
        public virtual string SHORT_MSG
        {
            get
            {
                return this._SHORT_MSG;
            }
            set
            {
                if (this._SHORT_MSG != value)
                {
                    this.SendPropertyChanging();
                    this._SHORT_MSG = value;
                    this.SendPropertyChanged("SHORT_MSG");
                }
            }
        }

        /// <summary>
        /// 设备ip
        /// </summary>
        [DataMember(Order = 12)]
        public virtual string Camera_Ip
        {
            get
            {
                return this._Camera_Ip;
            }
            set
            {
                if (this._Camera_Ip != value)
                {
                    this.SendPropertyChanging();
                    this._Camera_Ip = value;
                    this.SendPropertyChanged("Camera_Ip");
                }
            }
        }

        /// <summary>
        /// WIFI探针
        /// </summary>
        [DataMember(Order = 13)]
        public virtual string IS_WIFI
        {
            get
            {
                return this._IS_WIFI;
            }
            set
            {
                if (this._IS_WIFI != value)
                {
                    this.SendPropertyChanging();
                    this._IS_WIFI = value;
                    this.SendPropertyChanged("IS_WIFI");
                }
            }
        }

        /// <summary>
        /// 0全部 1天网 2雪亮 6支网
        /// </summary>
        [DataMember(Order = 14)]
        public virtual int BuildPeriod
        {
            get
            {
                return this._BuildPeriod;
            }
            set
            {
                if (this._BuildPeriod != value)
                {
                    this.SendPropertyChanging();
                    this._BuildPeriod = value;
                    this.SendPropertyChanged("BuildPeriod");
                }
            }
        }

        /// <summary>
        /// 重点单位
        /// </summary>
        [DataMember(Order = 15)]
        public virtual int KeyUnit
        {
            get
            {
                return this._KeyUnit;
            }
            set
            {
                if (this._KeyUnit != value)
                {
                    this.SendPropertyChanging();
                    this._KeyUnit = value;
                    this.SendPropertyChanged("KeyUnit");
                }
            }
        }

        /// <summary>
        /// 重点街道
        /// </summary>
        [DataMember(Order = 16)]
        public virtual string Street
        {
            get
            {
                return this._Street;
            }
            set
            {
                if (this._Street != value)
                {
                    this.SendPropertyChanging();
                    this._Street = value;
                    this.SendPropertyChanged("Street");
                }
            }
        }

        /// <summary>
        /// 203：4G执法仪 204：车载图传
        /// </summary>
        [DataMember(Order = 17)]
        public virtual int CAMERA_FUN_TYPE
        {
            get
            {
                return this._CAMERA_FUN_TYPE;
            }
            set
            {
                if (this._CAMERA_FUN_TYPE != value)
                {
                    this.SendPropertyChanging();
                    this._CAMERA_FUN_TYPE = value;
                    this.SendPropertyChanged("CAMERA_FUN_TYPE");
                }
            }
        }

        /// <summary>
        /// 1、第一道防控圈；2、第二道防控圈；3、第三道防空圈；4、第四道防控圈；5、第五道防控圈；6、第六道防控圈；99、其他（天网：重点监控对象）
        /// </summary>
        [DataMember(Order = 18)]
        public virtual int IMPORT_WATCH
        {
            get
            {
                return this._IMPORT_WATCH;
            }
            set
            {
                if (this._IMPORT_WATCH != value)
                {
                    this.SendPropertyChanging();
                    this._IMPORT_WATCH = value;
                    this.SendPropertyChanged("IMPORT_WATCH");
                }
            }
        }

        /// <summary>
        /// 解析编码
        /// </summary>
        [DataMember(Order = 19)]
        public virtual string ANALYSIS_NO
        {
            get
            {
                return this._ANALYSIS_NO;
            }
            set
            {
                if (this._ANALYSIS_NO != value)
                {
                    this.SendPropertyChanging();
                    this._ANALYSIS_NO = value;
                    this.SendPropertyChanged("ANALYSIS_NO");
                }
            }
        }

        /// <summary>
        /// 国标编码
        /// </summary>
        [DataMember(Order = 20)]
        public virtual string GBNO
        {
            get
            {
                return this._GBNO;
            }
            set
            {
                if (this._GBNO != value)
                {
                    this.SendPropertyChanging();
                    this._GBNO = value;
                    this.SendPropertyChanged("GBNO");
                }
            }
        }

        /// <summary>
        /// 相机产品编号
        /// </summary>
        [DataMember(Order = 21)]
        public virtual string PLATFORM_PRODUCT_ID
        {
            get
            {
                return this._PLATFORM_PRODUCT_ID;
            }
            set
            {
                if (this._PLATFORM_PRODUCT_ID != value)
                {
                    this.SendPropertyChanging();
                    this._PLATFORM_PRODUCT_ID = value;
                    this.SendPropertyChanged("PLATFORM_PRODUCT_ID");
                }
            }
        }

        /// <summary>
        /// There are no comments for CAMERA_NO in the schema.
        /// </summary>
        [DataMember(Order = 22)]
        public virtual int? RECODE_SAVE_TYPE
        {
            get
            {
                return this._RECODE_SAVE_TYPE;
            }
            set
            {
                if (this._RECODE_SAVE_TYPE != value)
                {
                    this.SendPropertyChanging();
                    this._RECODE_SAVE_TYPE = value;
                    this.SendPropertyChanged("RECODE_SAVE_TYPE");
                }
            }
        }

        /// <summary>
        /// 实卡编码
        /// </summary>
        [DataMember(Order = 23)]
        public virtual string CAMERA_BELONGS_ID
        {
            get
            {
                return this._CAMERA_BELONGS_ID;
            }
            set
            {
                if (this._CAMERA_BELONGS_ID != value)
                {
                    this.SendPropertyChanging();
                    this._CAMERA_BELONGS_ID = value;
                    this.SendPropertyChanged("CAMERA_BELONGS_ID");
                }
            }
        }

        /// <summary>
        /// 虚卡编码
        /// </summary>
        [DataMember(Order = 24)]
        public virtual string CAMERA_BELONGS_PK
        {
            get
            {
                return this._CAMERA_BELONGS_PK;
            }
            set
            {
                if (this._CAMERA_BELONGS_PK != value)
                {
                    this.SendPropertyChanging();
                    this._CAMERA_BELONGS_PK = value;
                    this.SendPropertyChanged("CAMERA_BELONGS_PK");
                }
            }
        }

        /// <summary>
        /// 位置类型
        /// </summary>
        [DataMember(Order = 25)]
        public virtual string POSITION_TYPE
        {
            get
            {
                return this._POSITION_TYPE;
            }
            set
            {
                if (this._POSITION_TYPE != value)
                {
                    this.SendPropertyChanging();
                    this._POSITION_TYPE = value;
                    this.SendPropertyChanged("POSITION_TYPE");
                }
            }
        }

        /// <summary>
        /// 时间戳
        /// </summary>
        [DataMember(Order = 26)]
        public virtual DateTime MODIFY_TIME
        {
            get
            {
                return this._MODIFY_TIME;
            }
            set
            {
                if (this._MODIFY_TIME != value)
                {
                    this.SendPropertyChanging();
                    this._MODIFY_TIME = value;
                    this.SendPropertyChanged("MODIFY_TIME");
                }
            }
        }

        /// <summary>
        /// 是否删除
        /// </summary>
        [DataMember(Order = 27)]
        public virtual int? IS_DEL
        {
            get
            {
                return this._IS_DEL;
            }
            set
            {
                if (this._IS_DEL != value)
                {
                    this.SendPropertyChanging();
                    this._IS_DEL = value;
                    this.SendPropertyChanged("IS_DEL");
                }
            }
        }

        /// <summary>
        /// 监控点位类型
        /// </summary>
        [DataMember(Order = 28)]
        public virtual string Monitor_Type
        {
            get
            {
                return this._Monitor_Type;
            }
            set
            {
                if (this._Monitor_Type != value)
                {
                    this.SendPropertyChanging();
                    this._Monitor_Type = value;
                    this.SendPropertyChanged("Monitor_Type");
                }
            }
        }

        public virtual event PropertyChangingEventHandler PropertyChanging;

        public virtual event PropertyChangedEventHandler PropertyChanged;

        protected virtual void SendPropertyChanging()
        {
            var handler = this.PropertyChanging;
            if (handler != null)
                handler(this, emptyChangingEventArgs);
        }

        protected virtual void SendPropertyChanging(System.String propertyName)
        {
            var handler = this.PropertyChanging;
            if (handler != null)
                handler(this, new PropertyChangingEventArgs(propertyName));
        }

        protected virtual void SendPropertyChanged(System.String propertyName)
        {
            var handler = this.PropertyChanged;
            if (handler != null)
                handler(this, new PropertyChangedEventArgs(propertyName));
        }
    }

}
